'''
Author: your name
Date: 2022-03-22 15:16:12
LastEditTime: 2022-03-26 10:53:47
LastEditors: Please set LastEditors
Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
FilePath: /python/package/xlrd.py
'''
'''
    xlrd 学习
    安装： pip install xlrd
    
    打开文件：xlrd.open_workbook(finlename)
    获取所有表名：.sheet_names()
    获取所有表数量：.nsheets
    获取所有表对象：sheets()
    查找指定表对象：.sheet_by_name(tabename)
    索引指定表对象：sheet_by_index(index)

    获取表名：.name
    获取行数：.nrows
    获取列数：.ncols

    获取行单元格值：row_values(index)
    获取行单元格数据类型和值：row(index)
    获取行单元格数据类型：row_types(index)

    根据行取值：.row_values(行下标,列开始,列结束)
    获取数据类型和内容：.row_slice(行下标,列开始,列结束)
    获取数据类型：.row_types(行下标,列开始,列结束)
    根据列取值：.col_values(第几列,行开始,行结束)

    下标取值：.cell_value(行下标,列下标)
    获取单元格数据类型并取值：.cell(行下标,列下标).value
    获取行数据类型和数据：.row(行下标)
    获取数据类型：.cell_type(行下标,列下标) \ .cell().ctype
    数据类型：0 空，1 字符串，2 数字，3 日期，4 布尔，5 error
'''
import xlrd

op = xlrd.open_workbook('xlrd/demo.xls')
table = op.sheet_by_index(0)

print("\n表总数是：%s" % (op.nsheets))
print("\n所有表对象：%s" % (op.sheets()))
print("\n所有表名：%s" % (op.sheet_names()))
print("\n表名查找表：%s" % (op.sheet_by_name('Sheet1')))
print("\n下标查找表：%s" % (op.sheet_by_index(0)))

print("\n表名：%s" % (table.name))
print("\n表行数：%s" % (table.nrows))
print("\n表列数：%s" % (table.ncols))

print("\n获取行单元格值：%s" % (table.row_values(0)))
print("\n获取行单元格数据类型和值：%s" % (table.row(0)))
print("\n获取行单元格数据类型：%s" % (table.row_types(0)))

print("\n根据行取值：%s" % (table.row_values(0,1,3)))
print("\n获取数据类型和内容：%s" % (table.row_slice(0,1,3)))
print("\n获取数据类型：%s" % (table.row_types(0,1,3)))
print("\n根据列取值：%s" % (table.col_values(0,1,3)))

print("\n下标取值：%s" % (table.cell_value(4,3)))
print("\n获取单元格数据类型并取值：%s" % (table.cell(1,3).ctype))
print("\n获取行数据类型和数据：%s" % (table.row(1)))
print("\n获取数据类型：%s\n" % (table.cell_type(1,3)))

string = ""
for i in range(table.nrows):
    if i>=6 and i<36 :
        row = table.row_values(i,0,11)
        if row[0]!='' and row[3]!='':
            title = row[0].split('、',1)
            if len(title)==2:
                title = title[1]
            else:
                title = title[0]
            string += "%s上年预算数%s元比上年增减%s元\n\n" % (title,row[3],row[4])
        
        if row[6]!='' and row[9]!='':
            title = row[6].split('、',1)
            if len(title)==2:
                title = title[1]
            else:
                title = title[0]
            string += "%s上年预算数%s元比上年增减%s元\n\n" % (title,row[9],row[10])
print(string)